perm filename T[E,ALS] blob sn#155285 filedate 1975-04-18 generic text, type T, neo UTF8
COMMENT ⊗   VALID 00238 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00020 00002	E -- DISPLAY EDITOR FOR STANFORD
C00030 00003	RIGHT HALF FLAGS
C00033 00004	CHARACTER TABLE FLAGS
C00036 00005	DD←←20000	RUNNING ON DATA DISK
C00038 00006	GETCHR, FSFIX, TSTSHF, CW, LEG, UUOS, XOPDEF, PURE, IMPURE,
C00041 00007	BEG, BEGSYS, BEGACT, BEGRPT, BEGDBG
C00044 00008	BEGRPG
C00046 00009	BEG0, BEG1, BEG1A, BEG2, BEGBKP
C00050 00010	BEG3,BEG4
C00053 00011	MAIN, FNF, FNF2
C00055 00012	CMDIN, CMDLUP, CMDEX, CMDX, CMDX2
C00058 00013	CMDED, CMDRD, CMDRD2, MINUS, PLUS, NUMS, INFIN, ALTSET
C00060 00014	CMDERR, ERR, POPJ1, EXTNUL, CPOPJ, CBTAB, ICHTAB, ILLRDO, ILLDIR, ILLMES, ILLMS2, ERRX, ILLBK
C00062 00015	INIT, INIT0, INIT1, INI1, IOBARF
C00066 00016	CMDSP
C00069 00017	XCMDS, XDISP, MCMDS, MDISP
C00071 00018	EXTEND, EXTEN1, EXTL0, EXTL, EXTL1, EXTL2, EXTL3
C00073 00019	EXTLK0, EXTLK, EXTAMB, EXTNUL, EXTNF, EXTAM2, EXTBUF, EXTBFE
C00075 00020	READON, ROSET, READWR, NORDWR, CANCEL, SNKOFF, SNKON, DPYALW, DPYSKI, NORDOW
C00077 00021	DDTGO, R, DRAW, DRAWX, PPSET, LINCNT
C00080 00022	GETOUT, GETOU1, FINISH, FINI1, FINI2, GORPG, QUIT, CLOSIT, GODRD
C00082 00023	NEWPAG, NEWPG, NEWPG0, NEWPG1, REREAD, PGINIT, NODEL, PGERR, FINSRT
C00086 00024	UNWIND, WIND, WIND1, LT, GT, LTE, GTE, TOP, BOT, JMP, UPARR, DWNARR
C00088 00025	XMARK--The `M' commands.
C00099 00026	DELLIN, DELPOS
C00101 00027	DELLP, DELL2
C00103 00028	DELPM, DELPM1, DELPM2, DELPM3
C00105 00029	DELPAG, DELPG1, ADJPG, ADJPGL
C00107 00030	RCOMP, RCOMP1, RCOMP2, RCOMPX
C00108 00031	DELETE, DELET1, ADDPAG
C00110 00032	APPEND, APPLUZ
C00112 00033	APPEN2, PMTXT, PMPAG
C00114 00034	INSERT
C00115 00035	INSER1, INSER2, INSER3, INSER4, INSER5
C00116 00036	INSER8, DIRADD
C00118 00037	INSER6, INSER7, MARK
C00119 00038	CONTQ
C00121 00039	ATTACH, ATTCH1, ARGCHK, ARGCHN
C00123 00040	ATTDO, ATTDO0, ATTDO2, ATTDO1
C00125 00041	ATTREP, ATTEX
C00127 00042	ATTKIL, ATTKL, ATTSRC, GPAGL, GPAGL0, GPAGL1, GPAGL2, GPAGL3, ATTWRT
C00129 00043	ATTCOP, ATTCP1, ATTCP
C00130 00044	ATTCP0, ATTCPL, ATCMOR, ATTCP2, ATTCP3, GPAGL
C00132 00045	EDIT, EDIT1, LINED, LINL1, EDDSP, EDARG, EDARGX
C00134 00046	EDFULL, EDTAB, EDNUL, EDCR, AGAIN, EDRP1, EDRPT
C00136 00047	EDGL, EDGL1, EDGL2, EDGL2A
C00139 00048	EDGL3, EDGL4, REEDIT, EDTMOR, EDGDSP, EDTAB2, PTOUT, PTPNT
C00142 00049	EDCR2, EDACT, EDITIT, REPLIN, PUTBAK
C00145 00050	EDPUT, EDPLR
C00147 00051	EDPS, EDPL, EDPLUZ
C00148 00052	EDSNK, EDSNK2, EDSNK3, ESDSP, ESALT
C00149 00053	CRDSP, REGCR, REGCR1, REGCR2
C00150 00054	CONTCR, CNTCR2, METACR, REPRST, REPRS2
C00152 00055	LECR, DUBLCR, DUBCR2
C00154 00056	INSONA, INSONE, INSNUL, INSNLP
C00156 00057	LININS, LINSLP, LINS1, LINGLP, LIDSP, LINTAB
C00158 00058	LINCR1, LINCR, LICCR, LINALT, LINCOM
C00159 00059	LINSTO, LINST1
C00161 00060	SETWRT, SETWR2, SETWRX, BTAB, BUF, RBUF
C00162 00061	FRD, FRD0, FRD1, NOEXT, NOPRG, NOPPN, NOSWIT, SWITL
C00165 00062	SETDEV, GETNAM, GETNML, GETP, GETPL, DTYI1, DTYI, DTYI2
C00167 00063	DOSWIT, NTYI, NTYIL, NTYIM, EDFIL, EDFIL2, SRCFIL, DSTFIL
C00169 00064	RSCAN, RSCAN0, RSCAN1, RSCAN2, RSCAN3, RSCAN4, RSCN4B, RSCN4C, RSCN4A, RSCN0A
C00173 00065	RSCAN5, RSCAN6, RSCAN7, RSCAN8, SYSCCK, CRECHK
C00175 00066	RSTYI, TYI1, TYI2, TYI3, TYIX, TYI4
C00177 00067	TYI, TYIT, TYIU
C00178 00068	TMPRED, TMPRD1, TMPRD2, TMPRDX, RPGRD1, BKPRED
C00184 00069	TMPWRT, BKPWRT
C00187 00070	FILERR, FILTYP, FILSTR, PPNTYP, FILETB
C00189 00071	SIXTYO, SIXTYL, SIXTY2, SIXTYN, SIXTNL, SIXTNN, PNTYO, PNTYOL
C00190 00072	UUOH, UUODSP, UFCE, UTYPCH, UTYPC2, UTYPDE, UTYPOC
C00192 00073	UTYPR, UTYPR1, USORRY, UFATAL
C00193 00074	OPENI, OPNOI, IOPEN, SETI, SETRLD, OPNDEV, RELDEV, OPNLUZ
C00197 00075	RLD, RLD1, RLD2, RLDX, RLDLUZ, FIXEOF, ENTLUZ, ENTL2
C00200 00076	EXTCHK, EXTCH1, EXTCH2, EXTCH3, EXTCH4, EXTTAB
C00202 00077	OPENW, OPENO, SETO, FPAUSE, PAUSE, PAUS2
C00204 00078	CLOSO, WRBUF, WRBF1, WRBF2, ENTR, OBUF
C00205 00079	MORCOR, INTLUZ, INTDSP, PDLOV, PDLOV1, PDLOV2, PDLOV3, ISAV, TSINT, TSNINT
C00208 00080	FSINI, FSINI1, MORCOR
C00211 00081	FSGET, FSLUP0, FSLUP, FSGRAB, FSXIT
C00212 00082	FSNEWT, FSNEWP, FSNEW
C00213 00083	FSUSED, FSTSML, FSNEXT, FSHRET, FSLLUZ
C00215 00084	FSLSCN, FSLSCL, FSLFR, FSLSHF, FSLSLP, FSLMOV, FSLDON
C00217 00085	FSHSCN, FSHSCL, FSHFR, FSHSHF, FSHSLP, FSHSR, FSHMOV
C00219 00086	FSBLT, POPTJ, FSBLT1
C00220 00087	FSBLT2, FSBLT3, FSHBLT, FSHBL2
C00221 00088	PNTREL, SHFTB, STDSH1, STDSHF, RELOC, RELOCL
C00223 00089	FSGIVE, FSGIV1, FSGIV2
C00224 00090	CORCHK, CRUNCH, CMPACT
C00226 00091	ENDSET, ENDFIX
C00227 00092	FSCHK, FCLUP1, FCLUP2, FCFR, FCDON
C00229 00093	FUCHK, MOVIT, MOVTX
C00231 00094	PURINI, PLCHK, PL2CHK, PLCHKL, PLSCN0, PLSCN, PLSCN1, PLSCN2, PLSCN3
C00233 00095	PURCHK, PURCH1, PURCH2, PURCH3, PURC3A
C00236 00096	PURCH4, PURCH5, PURCH6, PURCH7, PURCLC, TYPHW, PURCK, PLCHK1, PLCHK2, PURFLG
C00238 00097	SAVIT
C00239 00098	CHECK, CHECK1, CHECK2
C00240 00099	CHKDIR, CHKDPL
C00242 00100
C00244 00101	CHKLST, CHKFS, CHKFSL, CHKFS2, CHKPNT, CHKPN2
C00245 00102	CHKPAG, CHKPGP
C00246 00103	CHKPG1, CHKPG2, CPDSP, CHKPGT, CHKPTL
C00248 00104	CHKPG3, CHKPG4, CHKPG5, CHKPG6
C00249 00105	CHKATT, CHKNAT
C00250 00106	CTAB 0-37
C00254 00107	CTAB 40-77
C00256 00108	CTAB 100-137
C00258 00109	CTAB 140-177
C00260 00110	GETDIR
C00261 00111	DIRCL2, DIRCL, DIRCL1, GETDR1
C00263 00112	DIRLIN, DIRLUP, DIRDON
C00266 00113	LOSDIR, BADDIR, NODIR, DIRNUM, GDDSP, LSKP1, DIRSHF, DIREND
C00269 00114	COPFIL, COPFL1, COPDO, COPYX, COPDAT, COPLUP
C00271 00115	COPCOR, COPCHK, YESCHK, COPCMD
C00272 00116	FORMAT, FMTOK, FMTDSP
C00273 00117	NEWDIR, NEWDLP, SKPDSP, NEWDFF, OPUT, OSET, TMPDIR
C00274 00118	MAKDIR, MAKDR0, MAKDR1, MAKDOL, MDOL1
C00276 00119	MDIL1, MDIL1A, MDIL2, MDIL2A, MDCSRC, MDCSR1, MD1DSP
C00278 00120	MDIL1B, MAKDLF, MAKDFF, MDFF2, MDFF3, MDCEOL, MD2DSP
C00280 00121	MD1CR, MD2CR, MD3CR, MD3CR1, MDIL3, MDCRCK, MDFIX
C00282 00122	CREATE, CREAT2, CTEXT
C00284 00123	RDPAGE, RDPGOK, RDSPAG, RDPAG0
C00286 00124	RDPAG2, RDPAG1, RDLINE, RDLLP, RDLTAB
C00288 00125	RDLCR, RDLLF, NUMSTR,NUMSIX,OCTSTR,OCTASC
C00291 00126	RDLFF, RDLDON, LINSET, RPDSP, RDLNUL
C00293 00127	RDPGLZ, SOSTST, SOSCHK, SOSCK2, PGMK, PGMK2
C00294 00128	DIRCHK, DIRNEW, DIRNW2, DIRNW1, TXTSHF
C00296 00129	FNDLIN, FNDPAG, FNDLN1, FNDLN2, FNDLN3
C00297 00130	REMPTR, FIXPTR, FNDPT1, FNDPT2, LPTRTB, DPTRTB
C00299 00131	DIRGET, DIRGL, DGEND, DRGSET
C00301 00132	NUM5, NUM5A, DIRHED, DIRTXT, DIREMK, DGDSP
C00303 00133	OUTDIR, OUTDOK, OUTDLP, ODDSP, ODDON, ODEXP
C00305 00134	INSDIR, DCLP1, DCLP2, DCNG, INSDL
C00307 00135	IDDSP0, IDDSP, IDTAB, INSD3, INSD4, SCOMS, SCOMS2
C00309 00136	IDNUL, IDDON, IDDONS
C00311 00137	DIRSET, DIRST1, DIRUP, DIRUP1, DIRUP2, DIRUP3
C00312 00138	DIRFIX, DIRFX1, DIRFX2, DIRFX3, DIRFX4, DIRFXN
C00314 00139	DISPLAY DATA STORAGE
C00316 00140	MORE DISPLAY STORAGE
C00317 00141	HEADERS & TRAILERS
C00318 00142	DPYINI, DPYCHK
C00321 00143	DPYI2, NODPY, WIPE, IWIPE
C00323 00144	SETSCR, NMVARR, MOVARR, SETARR
C00325 00145	ARRBOT, ARRTOP, SETWIN, WINCHK, WINCH2
C00327 00146	DISP, DISP0, DISP1, DISP2
C00329 00147	DISP3, DISP4, DISP5, DUMMY, EXCLR, EXSET,EXTST
C00331 00148	DISPAT, DISPAX
C00332 00149	DWNWIN, REWIN, DDISPX, DDSPX2, DDDONE, WIPIT, WIPL, WIPL2
C00334 00150	DDCOP, DDLUZ, LINREL, LINRLL, IDISP, IDISP2
C00335 00151	IIIARR, IIIAR2, IIIAR3
C00337 00152	LESET, LEADJ, LECLR
C00338 00153	DBLT, DBLT1, DBLT2, DBLT3, IDISPX, DISPX, PPBAJ1, POPBAJ, POPAJ
C00340 00154	PCOMPD, PCOMPI, PCOMPS, P2CMPD, P2CMPI
C00341 00155	DDISP, DDISP2
C00342 00156	DOARR, DOAR2, OFFARR, ONARR
C00343 00157	DDISPS, DDSPS2, DDSPS3, DDSPSX, DDSPS4
C00345 00158	DSPSAT, DSPSAX
C00346 00159	DBLTS, DBLTS2, DBLTSN, DBLTS3, DBLTS1, DBLTSA, DBLTA, DBLTA2
C00348 00160	TDISP, TDISP1, TDISP2, TDSP2A, TDISPX
C00350 00161	TDISPC, TDISP3, TDISP4, TDISP5, TYPE, TYPEL
C00351 00162	WRPAGE, WRPAG1, WRPAG2, WRBOOK
C00353 00163	WRPX0, WRPX, WRPX1, WRPX1A, WRPX1B, WRPX2
C00354 00164	WRPX3, WRPX4
C00355 00165	WRPOK, WRTIT, WRT0
C00356 00166	WRP1, WRLINE, WRLUP, WRLP2, WRRDO, WRRDO2, WRRDO3
C00358 00167	WRDSP, WRTAB, WRCHK, WRDONE, WRDON2
C00360 00168	WRPM, BTAB2
C00362 00169	FLSPAG, FLSPGL, FLSPG2, CLRWRT, CLRWR2
C00363 00170	TV, RSYS, RUN, RUN1
C00366 00171	RUNILL, RUNNON, RUNFNF, RUNDEV, RUNFIL
C00367 00172	SEARCH ROUTINES
C00369 00173	SREAD, SREAD1, SREAD2, SREAD3, SREAD4, SRSTOR, SRSTR2
C00381 00174	SRACT, SREAD5, SRALT, SRALT2, SRALUZ, SREDT
C00388 00175	FINDIT, FOUND, FNDMOV, FNDERR
C00392 00176	FIND
C00394 00177	DIRSRC, DFERR, SRCDF, SDFCR
C00396 00178	SSET, SSET2
C00397 00179	SCOMP, SCOMPX, SCOMPR
C00399 00180	SBARF, SBARF1, SARRGH, SFSGT, SFSGET, SFSPUT, SFSPTL
C00401 00181	SPARSE
C00402 00182	SPARS1, SPARS2, SPDSP, SSCAN, SSCANA, SSCANX
C00404 00183	SSCAN1, SSCN1A, SSCN1B, SSCQT, SSCBIN, SSCINF, SSCNOT, SSCUOP, SSCVB
C00406 00184	SSCLP, SSCDSP
C00407 00185	SGRAPH, SGRPH1, SGRPH2, SGRPHX, SGDO1, SGDO1X, SGDOX2, SGDSP, SGDO1B
C00409 00186	SGNOT
C00410 00187	SBACK, SBACK1, SBACK2, SBACK3, SBACK4
C00412 00188	SBBRCH, SBBR2
C00413 00189	SBCALC, SBCAL0, SBCAL1, SBCAL2, SBCAL3
C00414 00190	SBCAL4, SBCNON, SBCX, SBCOPL, SBCOP2, SBCEND, SBCEN2, SBCFIX, SBCFXL, SBCFXE, POPJ2
C00416 00191	SBCOK, SBCEN1, SBCLUZ, SBCLZ1, SBCNXT, SBCBP, SBCBPL
C00418 00192	SBCCB, SBCCB1, SBCCB2, SBCCB8, SBCCB3, SBCCB4, SBCCB5
C00420 00193	SBCCB6, SBCCB7, BITCNT, BITCN1
C00421 00194	NEWBIT, NEWBT0, NEWBT1, NEWBT2, NEWBT3, NEWBT4, NEWBT5
C00423 00195	NEWBTC, NEWBC1, NEWBC2, NEWBC3, NEWBNC, NEWBN1, NEWBN2, NEWBN3, NEWBCZ, NEWBNZ
C00425 00196	SCCOM, SCCNOT
C00426 00197	SCCBIT
C00427 00198	MAKBIT, MAKBT0, MAKBT1, MAKBTN, MAKBN2, MAKBTB, MAKBB3
C00429 00199	MAKBNB, MAKBBT, MAKBB2, MBDSP, MBIND, MBIND2
C00431 00200	SCGEN
C00432 00201	SCGEN1, SCGEN2, SCGEN3, SCGEN4, SCGEN5, SCGEN6
C00434 00202	SCGTST, SCGT2, SCGT3, SCGDSP, SCGCN, SCGCN2, SCGBTN, SCGBT
C00436 00203	SCGE, SCGE2, SCGEL, SCGBAK, SCGBK1, SCGBK2, SCGBK3, SCGFA, SCGNC, SCGNFA
C00438 00204	SCGHB, SCGHB0, SCGHB5, SCGHB1, SCGHB2, SCGHB3, SCGHB4, SCGHBX, SCGHX2
C00440 00205	SCGCB, SCGCB0, SCGCB1, SCGCB2, SCGCB3, SCGCB4, SCGCB5, SCGHCB
C00442 00206	SBTMAK, SBTMK1, SBTMK2, SBTMK3, SBTMK4, SCGENB, SCGHB, SSVINS, SCXCT, SBKNW, SBKNWA, SBKDSP
C00444 00207	SRCPAG, SRCPG1
C00446 00208	GBYTP, GBYTPL, GBTPX, GBPDSP, GBPTAB
C00447 00209	SRCPGF, SPFTAB, SPFCR, SPFLUZ
C00448 00210	SRCPGB, SPFTAB, SBKNL, SBKNUL
C00449 00211	SRCSET, SRCST1, SRCSTL, SRCST2
C00450 00212	SCALL, SRCHX, SRCHLX
C00451 00213	SCNBAK, SCNBKL
C00453 00214	SCONTF, SRCFNP, SRCFNB, SFNB2, SFRETR
C00455 00215	SRCFF, SFFNUL, SGTACS, SRTACS
C00456 00216	SRCFB, SFBNUL, SBKNB, SBKNB2, SIOERR, SBKNP
C00457 00217	JFILL, JUST, JUSTL1, JUSTL2, JDISP
C00466 00218	JUSTTB, JUSTSP, JUSTS2, JUSTSL, JUSTS3, JUSTSO, JSTSO2, JULMAR
C00469 00219	JUSMAR
C00474 00220	JUSTCR, JCRTB, JCR2, JFIX, JPTAB, JATAB
C00477 00221	NXTLIN, NXTLN2, JTAB, NXTBL
C00483 00222	JDUMP, JDMP2, JDLT, JDL1, JDISP2
C00487 00223	JDSP1, JDSP2, JDSP3, JDTAB, JFLUSH
C00489 00224	JDFIN
C00492 00225	JDFIN2, JSET, JSET2
C00494 00226	INDENT,ALINE,CENTER,JLEFT
C00497 00227	LEFMAR,SHIFTY
C00501 00228	MACRO FREE STORAGE - MFSCLR,GETMFS,FREMFS
C00503 00229	MACRO DEFINER INPUT WATCHERS - INCHWL,INCHSL,SNEAKW,INCHRS,etc.: MACTYI
C00505 00230	ZDATA,ZSIX,ZBLT,ZEDFIL,ZLIST,EXIST
C00516 00231	LAMBDA,EPSIL,NWFILE,HOME,QUERY,HOMEG,LAMBDG
C00524 00232	********* BEG OF ESSAY DEFS *********
C00543 00233	SUBSTR
C00554 00234	SPOOLC
C00559 00235	BEGIN SPSUB
C00566 00236	TELBUF,CHKUP,CHECKU,CHTEXT,ASCASC,CHOUT3,CHOUT6
C00573 00237	TELLME,FBI
C00585 00238	PDL, PATCH, PAT, ZVARS, LEGTAB
C00587 ENDMK
C⊗;
;E -- DISPLAY EDITOR FOR STANFORD
;Written by Frederick H.G. Wright II
;with modifications by D. Poole, Art Samuel, and Stan Kugell.
;The Essay program was contracted by John Mccarthy and written by Stan Kugell

PRINTS /Type 0 to get ETV, 1 to get ESSAY, then <CTRL><META><LF>./
ESSFLG←←.INSER TTY:

IFE ESSFLG<TITLE ETV -- DISPLAY EDITOR FOR STANFORD↔SUBTTL FREDERICK H.G. WRIGHT II
PRINTS /       You are assembling ETV, the Stanford Display Editor
/
PRINTS/	MAR.28,1975  E.29(P481) Apr.6 1975 E.31(P487)	Apr.7 1975 E.32(P487)
APR 10 1975 E.33(P487)	APR 14 E.34
E.32 contains code for TELLME but no automatic calling
E.32 Reloaded on April 8 with minor corrections.
E.33 With some automatic calling (checksum error and UFATAL calls) Apr. 10 1975.
E.34 ALINE bug fixed Apr.14 1975
/>

IFN ESSFLG<TITLE ESSAY
PRINTS /       You are assembling Essay.
/>
DEFINE ESSAY <IFN ESSFLG>
DEFINE NOESS <IFE ESSFLG>

COMMENT ⊗ TO PUT UP A NEW E WITH AN UPPER SEGMENT, USE THE COMMANDS:

.LOA %SE%1<%2V%1B	;LOADS WITH SYMBOLS AND NNRAID IN THE UPPER SEGMENT
.S 137			;RENAMES UPPER, WRITE PROTECTS AND SETS ITS PROTECTION CONSTANT
.SSAVE SYS E		;BE SURE TO SSave (to keep the UPPER SEGMENT around)

Early versions of E that were up for varying lengths of time:
Nov. 6 1974. E.7        Nov. 8 1974. E.8        Nov.17 1974. E.10
Nov.18 1974. E.10       Dec. 3 1974. E.12       Dec. 9 1974. E.15
Dec.10 1974. E.16(P424) Dec.14 1974. E.17(P431) DEC.17 1974. E.18(P431)
Dec.18 1974. E.19(P431) Jan.3 1975. E.20(P439   Jan.5,1975   E.21(P439)
Jan.10,1975. E.22(P442) Jan 15,1975  E.23(P442) Mar.12,1975. E.26(P474)
Mar.13,1975  E.27       Mar.17 1975  E.27(P477) Mar.19 1975  E.28(P477)

DATA STRUCTURE.
	A page  of text is  represented in memory  as a theaded  list of
items  each representing a  single line of  the text. Each  item in this
representation contains four  words of header  information, the text  of
the line in question and one trailer word.
	The first header word contains a TXTCOD, which for ordinary text
is a 2 in the left half and the total number of words in the right half. 
This word  is used by the free storage  management routines. It does not
seem to be used by the text manipulation sections of the code.  The word
count is duplicated in  the trailer word which is also  used only by the
free storage routines. 
	The  second  header  word is  a  pointer word.    It  contains a
backward pointer  in  the left  half  pointing to  the location  of  the
pointer  word of  the previous  item  and in  the right  half  a forward
pointer to  the location  of the  pointer  word of  the next  item.  The
location of the pointer word for the first item is contained in the word
at  PAGE and  the  backward pointer  for the  first item points  back to
PAGE. The last item on the page points to the word BOTSTR and  this word
points back to this last item and forward to itself.  When in the ATTACH
mode,   the  location  ATTBUF points  to the pointer  word of  the first
attached line and back to the pointer word of the last attached line.
	The third word contains  flag bits in the left  half identifying
the type  of the line and two  9-bit bytes in the right  half. Flag bits
which have been identified are:
	400000	 the line is a page mark.
	200000	 the line is ARRLIN (CURRENT to which the arrow points).
	100000	 the line is WINLIN (the first line on the window).
	040000   the line is an Essay reference (for the ESSAY version).
The  first byte  in  the right  half  contains the  total  count of  the
characters as the line is stored on the disk, where a TAB symbol counts
1 and the terminating CR and LF are counted.
The  second byte  contains  the  count of  the  characters as  they  are
displayed where a TAB is counted as the number of spaces it produces and
the terminating CR and LF are not counted. 

	The fourth word is the serial number of the line as kept in the
core. This number is changed every time that a change is made to the line
so this number then bears no relationship to the position of the line on
the page.

	The text occupies an integral number of words and is  padded out
with nulls.
	The trailer  word contains the count  of the total words  in the
item,   including  header   and  trailer  words.   This  duplicates  the
information in the right half of the first header word.

       TABs are handled in a pecular way. When a TAB occurs it is stored
as  a TAB and  this is  followed by as  many spaces  as the TAB  in fact
produces in the text and then by a terminating TAB.

       end of comment ⊗

NOLIT

;Register	Most common usage

F←0		;Flag bits
A←1		;Argument value
B←2		;CONTROL and META bits as stripped from command character.
C←3		;Character
D←4		;Dispatch table entry
E←5		;Table location.
G←6
H←7
I←10
DSP←11		;Dispatch table location (CTAB most of the time).
Q←14
T←15
TT←16
P←17		;Always reserved as PDL pointer.

DEFINE STOPJ
	{PUSHJ P,STOPJC	
	}	
;Used to replace JRST 4,. and other fatal halts to inform ALS of trouble
;STOPJ USED FOR JRST 4,. terminating with a JRST 4,. as usual
;STOPC used for JRST 4,. WHEN ATTEMPT IS MADE TO CONTINUE

IFNDEF PURESW<PURESW←←1>	;DEFAULT TO SHARABLE PURE UPPER SEGMENT
IFNDEF DEBSW<DEBSW←←1>
IFNDEF BOOKMD<BOOKMD←←1>
;BOOKMD NON-ZERO PERMITS /B MODE FOR READING BOOKS.  0 DISABLES /B MODE.

COPNUM←←3	;LOG OF # K OF CORE FOR TEMP COPY BUFFER
SRSIZ←←40	;SIZE OF SEARCH STRING BUFFER
LPDL←←69
DPYBSZ←←=660*2

DSKI←←1
DSKO←←2
DSKSP←←4	;Used for spooling file
DSKCH←←5	;Used to write into bug file BUGFIL.LST[ALS,ALS]
SWP←←3
IFN BOOKMD, {
RPGO←←4		;CHANNEL USED TO WRITE OUT .BKP FILE IN BKPSW MODE
};END BOOKMD

...←←0

;Type of display (kept in cell called DPY)
$TTY ←← 0	;Teletype kludge
$DD  ←←	1	;Datadisk video type display
$III ←←	2	;III Vector type display
;RIGHT HALF FLAGS
REDNLY←←1	;READ ONLY MODE
COPY←←2		;NEED TO DO COPY (← OR →)
DIROK←←4	;HAVE COMPLETE DIR
UPDTXT←←10	;LINE 1 CHANGED - UPDATE DIR AT WRPAGE
WRITE←←20	;SOMETHING CHANGED - NEED TO WRITE IT
EOF←←40		;INPUT EOF DETECTED - DO ANOTHER LOOKUP (LOSING SYSTEM!)
EDDIR←←100	;EDITING THE DIRECTORY PAGE
ARG←←200	;ARG WAS TYPED TO COMMAND
DSPSCR←←400	;REDISPLAY SCREEN
DSPALL←←1000	;REDISPLAY WHOLE SCREEN
FILLUZ←←2000	;EDITING NONSTANDARD FORMAT FILE
REL←←4000	;RELATIVE ARG (+ OR -)
NEG←←10000	;NEGATIVE ARG
EDITM←←20000	;DISPATCH IS FROM LINE EDIT
EDBRK←←40000	;(WITH EDITM) COMMAND TYPED IN MIDDLE OF LINE
XPAGE←←100000	;WILL EXPAND FILE FOR PAGE
UPDIR←←200000	;NON-TEXT CHANGE TO DIR
ATTMOD←←400000	;IN ATTACH MODE

;LEFT HALF FLAGS
ENTRD←←1	;EDIT FILE HAS BEEN ENTERED
CLRBF←←2	;CLEAR OBUF AFTER OUTPUT
NOSHUF←←4	;DON'T SHUFFLE FREE STORAGE
NOCHK←←10	;DON'T TRY TO CORE DOWN
OFFEND←←20	;ARROW ON LINE N+1
NULLIN←←40	;CURRENT LINE IS EMPTY
ARRPG←←100	;ARROW POG IS SELECTED
TF1←←200	;TEMP FLAG
PMLIN←←400	;CURRENT LINE IS PAGE MARK
OKF←←1000	;SHOULD TYPE "OK"
	;New flags added by ALS. May be represented by 3 bits if space gets tight.
ALIN←←2000		;ALINE FLAG
INDEN←←4000		;INDENT FLAG
CEN←←10000		;CENTER FLAG
JOINF←←20000		;JOIN FLAG
ZATT←←40000		;To save ATTACH on a Z-EPSIL command.
;	100000
;	200000
NGPUSE←←400000		;Network Graphic User